// RedJey Graphics User Interface Library for J2ME Platform.
// Copyright (C) 2008 Yevgen Krapiva
//
// This library is free software; you can redistribute
// it and/or modify it under the terms of the
// GNU Lesser General Public License as published
// by the Free Software Foundation; either version 3.0
// of the License, or any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Lesser General Public License for more details.
//
// You should have received a copy of the GNU Lesser General Public License
// along with this library; if not, write to the Free Software Foundation, Inc.,
// 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
//

package com.incrediblesoft.redjey;

/**
 * @author Yevgen Krapiva<br>
 *         Homepage: http://code.google.com/p/redjey/<br>
 *         Feedback: ykrapiva@gmail.com<br>
 *         Copyright (C) 2008 Yevgen Krapiva<br>
 */

import com.incrediblesoft.redjey.event.FocusEvent;
import com.incrediblesoft.redjey.event.AbstractEvent;
import com.incrediblesoft.redjey.event.FocusListener;

import javax.microedition.lcdui.Graphics;
import java.util.Vector;

public class Window extends Container
{    
    /**
     * Modal flag
     */
    protected boolean isModal;

    /**
     * See setVisible() method
     */
    protected boolean windowIsCreated;

    /**
     * Constructs default window
     */
    public Window()
    {
        this(null);
        windowIsCreated = true;
    }

    /**
     * Constructs window with specified style class name
     * @param styleClassName Style class name
     */
    public Window(String styleClassName)
    {
        super(styleClassName);
        windowIsCreated = true;
    }

    public String getName()
    {
        return "Window";
    }

    public void setVisible(boolean visible)
    {
        if (windowIsCreated)
        {
            super.setVisible(visible);
            if (visible)
                UIManager.insertWindowAt(this, 0);
            else
                UIManager.removeWindow(this);
        }        
    }

    /**
     * Sets modality flag
     * @param modal true - window always on top, otherwise - window can go background.
     */
    public void setModal(boolean modal)
    {
        this.isModal = modal;
    }

    /**
     * Returns if this window can go background or not.
     * @return
     */
    public boolean isModal()
    {
        return isModal;
    }

    /**
     * Maximizes this window
     */
    public void setFullScreen()
    {
        setSize(UIManager.getCanvas().getWidth(), UIManager.getCanvas().getHeight());
    }
}
